package com.Web.controller;


import com.Web.dao.UserDao;
import com.Web.entity.User;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;


//用于前后端交互
@RestController

@RequestMapping("/user")//请求父路径
public class UserController {
    @Autowired  //将userDao注入到文本中
            UserDao userDao;

    //注册方法  localhost:8086/user/register
    @GetMapping("/register")
    public HashMap<String, Object> register(User user) {  //用于接受前端传过来的数据，并创建一个user对象接收
        //创建一个HashMap，存储返回给前端的数据{"key"："value"}
        HashMap<String, Object> map = new HashMap<>();
        //重复注册验证，通过手机号和用户名查询数据库表
        QueryWrapper<User> wrapper = new QueryWrapper<>();  //条件构造器   select * form xxx where phone
        wrapper.eq("user_phone", user.getUserPhone());  //构造 where phone ==xxx 条件语句
        //执行查询操作  将数据封装到User对象中
        User u = userDao.selectOne(wrapper);//执行 SELECT * form user where user_phone

        if (u != null) {   //不为空，表示已经注册
            map.put("msg", "该手机号已经注册");
            map.put("code", 500);//500表示失败
        } else {
            //不为空插入数据
            userDao.insert(user);
            map.put("msg", "注册成功");
            map.put("code", 200); //200表示注册成功
        }
        return map;
    }

    //登入的方法
    @GetMapping("/login")
    public HashMap<String, Object> login(User user) {
        //声明一个hashMop,用于存储响应给前端数据
        HashMap<String, Object> map = new HashMap<>();
        //构造手机号和密码的执行条件
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //构造账号的查询条件
        wrapper.eq("user_name", user.getUserName());
        //构造密码的查询条件
        wrapper.eq("user_password", user.getUserPassword());
        //执行查询
        User u = userDao.selectOne(wrapper);
        if (u == null) {
            map.put("msg", "账号或者密码错误，如没注册，请注册！");
            map.put("code", 500);
        } else {
            map.put("msg", "登入成功");
            map.put("code", 200);
        }
        System.out.println(map);
        return map;
    }

    //查询全部用户
    @GetMapping("/list")
    public HashMap<String, Object> list() {
        HashMap<String, Object> map = new HashMap<>();
        //查看全部数据
        List<User> list = userDao.selectList(null);
        map.put("data", list);
        map.put("code", 200);
        return map;
    }

    //用户更新密码
    @GetMapping("/undata")
    public HashMap<String,Object> unData(User user){
        HashMap<String, Object> map = new HashMap<>();
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //传入数据，进行判断
        wrapper.eq("user_name",user.getUserName());
        wrapper.eq("user_password",user.getUserPassword());
        User u = userDao.selectOne(wrapper);
        if(u !=null){
//            String sql = "update fanju set user_password='"+user.getUserPassword()+"'";
        }{
            map.put("code",500);
            map.put("map","没有该用户名");
        }
        return map;
    }
}